package cn.xscrum.vtsp.domain;

import cn.xscrum.common.annotation.Excel;
import cn.xscrum.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.util.Date;

/**
 * 志愿者黑名单对象 vtsp_volunteer
 *
 * @author liuwl
 * @date 2021-10-01
 */
@Data
public class VtspBlacklist  extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 志愿者唯一标识 */
    private Long volunteerId;

    /** 开放授权登陆信息唯一标识 */
    @Excel(name = "开放授权登陆信息唯一标识")
    private Long oauthId;

    /** 志愿者编号 */
    @Excel(name = "志愿者编号")
    private String volunteerCode;

    /** 志愿者姓名 */
    @Excel(name = "志愿者姓名")
    private String volunteerName;

    /** 志愿者学历（字典数据） */
    @Excel(name = "志愿者学历", readConverterExp = "字=典数据")
    private Integer volunteerDegree;

    /** 性别代码 */
    @Excel(name = "性别代码")
    private Integer sexType;

    /** 性别名称 */
    @Excel(name = "性别名称")
    private String sexName;

    /** 部门标识 */
    @Excel(name = "部门标识")
    private Long sectorId;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String sectorName;

    /** 志愿者学号 */
    @Excel(name = "志愿者学号")
    private String volunteerNo;

    /** 职务标识 */
    @Excel(name = "职务标识")
    private Long dutiesId;

    /** 职务名称 */
    @Excel(name = "职务名称")
    private String dutiesName;

    /** 出生日期 */
    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date volunteerBirthday;

    /** 志愿者级时 */
    @Excel(name = "志愿者级时")
    private String volunteerLevel;

    /** 联系电话 */
    @Excel(name = "联系电话")
    private String volunteerPhone;

    /** 所在地 */
    @Excel(name = "所在地")
    private String volunteerArea;

    /** 所在地ID */
    @Excel(name = "所在地ID")
    private Long volunteerAreaid;

    /** 学院ID */
    @Excel(name = "学院ID")
    private Long academyId;

    /** 所在学院 */
    @Excel(name = "所在学院")
    private String volunteerAcademy;

    /** 电子邮箱 */
    @Excel(name = "电子邮箱")
    private String volunteerEmail;

    /** 证件类型 */
    @Excel(name = "证件类型")
    private Integer cardType;

    /** 证件号码 */
    @Excel(name = "证件号码")
    private String cardNo;

    /** 志愿者专业 */
    @Excel(name = "志愿者专业")
    private String volunteerProfession;

    /** 入队时间 */
    @Excel(name = "入队时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date volunteerDate;

    /** 所在班级 */
    @Excel(name = "所在班级")
    private String volunteerClass;

    /** 是否工作 */
    @Excel(name = "是否工作")
    private Integer isWork;

    /** 工作单位 */
    @Excel(name = "工作单位")
    private String workPlace;

    /** 工作方向 */
    @Excel(name = "工作方向")
    private String workTrend;

    /** 兴趣特长 */
    @Excel(name = "兴趣特长")
    private String volunteerSpecialty;

    /** 服务时长 */
    @Excel(name = "服务时长")
    private Long serveTime;

    /** 个人简介 */
    @Excel(name = "个人简介")
    private String volunteerSynopsis;

    /** 状态（1：申请成为志愿者，还未审批；3：志愿者申请未通过；6：正式志愿者；9：黑名单志愿者） */
    @Excel(name = "状态", readConverterExp = "1=：申请成为志愿者，还未审批；3：志愿者申请未通过；6：正式志愿者；9：黑名单志愿者")
    private Integer memberState;

    /** 备注 */
    @Excel(name = "备注")
    private String memo;

    /* 额外添加*/

    /* 联表vtsp_activty */

    /** 活动唯一标识 */
    private Long activityId;

    /** 活动名称 */
    private String activityName;

    /** 活动类型名称 */
    private String typeName;

    /** 活动区域 */
    private String activityArea;

    /** 活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date activityBegin;

    /** 活动结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date activityEnd;

    /*额外属性*/

    /**  活动时间（活动开始时间 - 活动结束时间） */
    private String activityTime;

    /* 联表vtsp_post */

    /** 岗位名称 */
    private String postName;

    /* 联表vtsp_appraise */

    /** 参与时长（所获时长） */
    private Long appraiseTime;

    /** 评分（活动表现） */
    private Long appraiseScore;

    /** 评价内容 */
    private String appraiseContent;

    /** 创建者（评价人） */
    private String appraiseName;

    /** 创建时间（评价时间） */
    private Date appraiseDate;

    /* 联表vtsp_enroll */

    /** 报名时间（创建时间） */
    private Date enrollTime;

    /** 状态（1：未审批        3：未通过      6：通过） */
    private Integer enrollState;

    /** 审核人（更新者） */
    private String auditName;

    /** 审核时间（更新时间） */
    private Date auditTime;

}
